Information processing systems including various apparatuses connected to an information processing apparatus via a network are now used. In some of these information processing systems, an information processing apparatus executes an operation corresponding to an event record received from any of the other apparatuses. The apparatuses that issue event records include a wide variety of apparatuses such as, for example, other information processing apparatuses, sensor devices, home appliances, and the like.
A rule defining the content of a condition used by the information processing apparatus for determining whether to execute an operation for an event record and defining the content of the operation is created in advance by the user, for example. When the information processing apparatus determines that the condition described in the rule is satisfied upon receipt of event data, the information processing apparatus executes the corresponding operation. The information processing apparatus sometimes executes one or more operations based on multiple event records sequentially received from the various apparatuses. This method of executing operations is often called Complex Event Processing (CEP).
Information processing apparatuses that perform CEP may receive a large number of event records. If the number of event records received per unit time increases, a backlog develops, which results in a delay in processing the events. In view of this, there has been proposed a technique for accelerating processing of event streams by using a coprocessor. According to this proposal, for example, filtering of the received event stream and matching with a rule condition are performed in parallel on a coprocessor, thereby accelerating the processing.
There has also been proposed a processing description language that allows the use of a clause represented by a character string “RETAIN” in the description of rules and enables execution of processing of multiple event records that are arrived before reaching the number of events or the time specified in the “RETAIN” clause. Further, there has also been proposed a technique that extends an event processing language so as to enable event processing based on the detection result of a pattern from filtered streaming events and the detection result of a historical pattern from past events.
International Publication Pamphlet No. WO2009/140363
International Publication Pamphlet No. WO2008/150675
Japanese Laid-open Patent Publication No. 2011-86288
When an information processing apparatus processes received event records according to the procedure described in a rule, the information processing apparatus might execute a useless operation.
For example, the result of a first operation based on a certain event record is often used in a second operation. Further, for example, a determination of whether to execute the second operation is often made in accordance with the result of a condition determination which is not dependent on the result of the first operation. In this case, there may be a rule describing that the first operation is executed before the condition determination is made. Then, however, if a determination not to execute the second operation is made by the condition determination after execution of the first operation, it indicates that the result of the first operation was obtained although not needed. That is, the first operation was executed uselessly, resulting in inefficiency. As long as processing is performed according to the procedure described in the rule, it is difficult to prevent execution of such a useless operation.